package com.a2j.beans.user;

import com.a2j.beans.base.BaseUser;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * Author: bzb
 * Data: 2021/10/19 23:05
 * Desc: 用户实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
@SuperBuilder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "普通用户信息")
public class AppUser extends BaseUser {

    @ApiModelProperty(value = "昵称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String nickName; // 昵称

    @ApiModelProperty(value = "二维码")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String qrCode; // 二维码

    @ApiModelProperty(value = "生日")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date birthday; // 生日

    @ApiModelProperty(value = "Android推送token")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String androidPullToken; // Android推送token

    @ApiModelProperty(value = "ios推送token")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String iosPullToken; // ios推送token

    @ApiModelProperty(value = "认证状态")
    private Integer state; // 认证状态

    @ApiModelProperty(value = "认证时间")
    @JsonFormat(pattern = "YYYY-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Date authenticationTime; // 认证时间

    @ApiModelProperty(value = "系统用户ID")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer authenticationSysId; // 系统用户ID

    @ApiModelProperty(value = "系统用户名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String authenticationSysName; // 系统用户名称

    @ApiModelProperty(value = "注册省份")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String registerProvince; // 注册省份

    @ApiModelProperty(value = "注册市级")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String registerCity; // 注册市级

    @ApiModelProperty(value = "注册方式 （Android、ios、PC）")
    private Integer registerFrom; // 注册方式 （Android、ios、PC）
}